home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / nihcl-30.lha / nihcl-3.0 / ex / ex2-2.c < prev    next >
C/C++ Source or Header  |  1990-05-15  |  703b  |  37 lines

  1. /* ex2-2.c -- Add multiple-precision integers using mp library */
  2.  
  3. /*$Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/ex/RCS/ex2-2.c,v 3.0 90/05/15 22:45:02 kgorlen Rel $*/
  4.  
  5. #include <mp.h>
  6.  
  7. MINT* dtom(d)
  8. char *d;
  9. {
  10.     MINT *t, *ten;
  11.     t = itom(0);
  12.     ten = itom(10);
  13.     while (*d) {
  14.         MINT *u;
  15.         u = itom(*d++ - '0');
  16.         mult(t,ten,t);
  17.         madd(t,u,t);
  18.         mfree(u);
  19.     }
  20.     mfree(ten);
  21.     return t;
  22. }
  23.  
  24. main()
  25. {
  26.     MINT *a, *b, *c, *t;
  27.     a = dtom("25123654789456");
  28.     b = dtom("456023398798362");
  29.     c = itom(0);
  30.     t = itom(47);
  31.     madd(a,b,c);
  32.     madd(c,t,c);
  33.     mout(c);
  34.     printf("\n");
  35.     mfree(a); mfree(b); mfree(c); mfree(t);
  36. }
  37.